#e
#Title[buhTv]
#Text[]
#Image[]
#BackGround[]
#BGM[]
#PlayLevel[Extra]
#ScriptVersion[2]
#Player[FREE]

script_enemy_main
{
let wt=200;
let usebomb=0;

	//GoɈxs镔
	@Initialize
	{
	//   eϐ

	//   XyJ[hf[^
	SetLife(1000);
	SetScore(100000);
	SetDamageRate(30,  0);
	SetTimer(80);
	SetInvincibility(250);
	LoadGraphic("script\img\ExRumia.png");
	CutIn(KOUMA,"buhTv",GetCurrentScriptDirectory~"..\img\cutin01.png",0,0,255,320);

	}
	//   ʒu܂ňړ
	SetMovePosition02(GetCenterX, GetClipMinY+100, 60);

	BG_Standard;
	AtackTaskA;
	AtackTaskB;
	MoveTask;
	ControlTask;
	//G̃Ct0ɂȂ܂ŁA̕1t[1s
	@MainLoop
	{
		yield;


		if(OnBomb==false){
			SetCollisionA(GetX, GetY, 32);
			SetCollisionB(GetX, GetY, 24);
			usebomb=0;
		}
		else{
			usebomb++;
		}
		if(usebomb==1){
			BombBarrier;
		}
	}
	
	//`惋[vB1t[1s
	@DrawLoop
	{
		SetGraphicRect(0,1,63,64);
		if(GetSpeedX<0){
			SetGraphicRect(128,1,191,64);
		}
		if(GetSpeedX>0){
			SetGraphicRect(192,1,255,64);
		}
		SetColor(255,255,255);
		SetAlpha(255);
		if(OnBomb==true){SetAlpha(96);}
		SetTexture("script\img\ExRumia.png");//摜͔q
		DrawGraphic(GetX(),GetY());//G̍WEx[~A`;
	}
		
	//GłuԂɈxs镔
	@Finalize
	{
		CreateItem(ITEM_BOMB,GetX,GetY);
		DeleteGraphic("script\img\ExRumia.png");
		DeleteGraphic(GetCurrentScriptDirectory ~"..img\back1.png");
		DeleteGraphic(GetCurrentScriptDirectory ~"..img\back2.png");
	}
	//XyJ[h̔wi
	//Ă悢
	@BackGround
	{
		BG_Simple;
	}

	task AtackTaskA{
		wait(120);
		loop{
			let nway=12;
			let dira=180;
			let dirb=GetAngleToPlayer-90;
			loop(nway+1){
				GoldWolf(GetX,GetY,
					cos(dirb)*cos(dira)*80-sin(dirb)*sin(dira)*240+GetPlayerX+cos(GetAngleToPlayer)*80,
					sin(dirb)*cos(dira)*80+cos(dirb)*sin(dira)*240+GetPlayerY+sin(GetAngleToPlayer)*80,
					30,180,3,YELLOW03,0,30);
				dira+=180/nway;
			}
			wait(wt);
		}
	
	}

	task GoldWolf(	//w_BňUA莞Ԍ㕜Ď@_
		x,		//˓_
		y,
		tx,		//zu_
		ty,
		puttime,	//zu܂ł̎
		sleeptime,	//Ŋ
		spd,		//̑x
		grf,
		delaya,
		delayb
	){
		let obj=Obj_Create(OBJ_SHOT);
		Obj_SetPosition(obj,x,y);
		Obj_SetSpeed(obj,Distance(x,y,tx,ty)/puttime);
		Obj_SetAngle(obj,atan2(ty-y,tx-x));
		ObjShot_SetGraphic(obj,grf);
		ObjShot_SetDelay(obj,delaya);
		wait(delaya+puttime);
		let alive=0;
		if(!Obj_BeDeleted(obj)){
			Obj_SetSpeed(obj,0);
			ObjShot_FadeDelete(obj);
			alive=1;
		}
		wait(sleeptime);
		if(alive==1){
			CreateShot01(tx,ty,spd,atan2(GetPlayerY-ty,GetPlayerX-tx),grf,delayb);
		}
	}

	task AtackTaskB{
		wait(120);
		let interval=40;
		let nway=6;
		loop{
			let dir=360/(nway*2)+GetAngleToPlayer;
			loop(nway){
				CreateShot01(GetX,GetY,3,dir,RED02,10);
				dir+=360/nway;
			}
			wait(interval);
			if(interval>20){interval--;}
		}
	}

	task MoveTask{		//@Ɉړp^[
		wait(240);
		while(true){
			let ptn=0;
			if(GetX<GetCenterX-80){ptn=1;}
			if(GetX>GetCenterX+80){ptn=2;}
			if(ptn==0){
				if(GetX<GetPlayerX){ptn=1;}
				else{ptn=2;}
			}
			if(ptn==1){
				SetMovePosition02(rand(GetX+40,GetX+60), rand(GetClipMinY+40,GetClipMinY+120), 40);
			}
			if(ptn==2){
				SetMovePosition02(rand(GetX-40,GetX-60), rand(GetClipMinY+40,GetClipMinY+120), 40);
			}
			wait(80);
		}
	}


	task ControlTask{
		wait(250);
		while(GetEnemyLife>800&&GetTimer>20){yield;}
		wt=180;
		while(GetEnemyLife>600&&GetTimer>20){yield;}
		wt=160;
		while(GetEnemyLife>400&&GetTimer>20){yield;}
		wt=140;
		while(GetEnemyLife>200&&GetTimer>20){yield;}
		wt=120;
		while(GetTimer>20){yield;}
		wt=100;
	}

	#include_function".\function.txt"
}

